# SPDX-FileCopyrightText: 2006 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later

set(SRC
  FRS_freestyle.h
  intern/application/AppCanvas.cpp
  intern/application/AppCanvas.h
  intern/application/AppConfig.cpp
  intern/application/AppConfig.h
  intern/application/AppView.cpp
  intern/application/AppView.h
  intern/application/Controller.cpp
  intern/application/Controller.h
  intern/blender_interface/BlenderFileLoader.cpp
  intern/blender_interface/BlenderFileLoader.h
  intern/blender_interface/BlenderStrokeRenderer.cpp
  intern/blender_interface/BlenderStrokeRenderer.h
  intern/blender_interface/BlenderStyleModule.h
  intern/blender_interface/FRS_freestyle.cpp
  intern/geometry/BBox.h
  intern/geometry/Bezier.cpp
  intern/geometry/Bezier.h
  intern/geometry/FastGrid.cpp
  intern/geometry/FastGrid.h
  intern/geometry/FitCurve.cpp
  intern/geometry/FitCurve.h
  intern/geometry/Geom.h
  intern/geometry/GeomCleaner.cpp
  intern/geometry/GeomCleaner.h
  intern/geometry/GeomUtils.cpp
  intern/geometry/GeomUtils.h
  intern/geometry/Grid.cpp
  intern/geometry/Grid.h
  intern/geometry/GridHelpers.cpp
  intern/geometry/GridHelpers.h
  intern/geometry/HashGrid.cpp
  intern/geometry/HashGrid.h
  intern/geometry/Noise.cpp
  intern/geometry/Noise.h
  intern/geometry/Polygon.h
  intern/geometry/SweepLine.h
  intern/geometry/VecMat.h
  intern/geometry/matrix_util.cpp
  intern/geometry/matrix_util.h
  intern/geometry/normal_cycle.cpp
  intern/geometry/normal_cycle.h
  intern/image/GaussianFilter.cpp
  intern/image/GaussianFilter.h
  intern/image/Image.h
  intern/image/ImagePyramid.cpp
  intern/image/ImagePyramid.h
  intern/python/BPy_BBox.cpp
  intern/python/BPy_BBox.h
  intern/python/BPy_BinaryPredicate0D.cpp
  intern/python/BPy_BinaryPredicate0D.h
  intern/python/BPy_BinaryPredicate1D.cpp
  intern/python/BPy_BinaryPredicate1D.h
  intern/python/BPy_ContextFunctions.cpp
  intern/python/BPy_ContextFunctions.h
  intern/python/BPy_Convert.cpp
  intern/python/BPy_Convert.h
  intern/python/BPy_Freestyle.cpp
  intern/python/BPy_Freestyle.h
  intern/python/BPy_FrsMaterial.cpp
  intern/python/BPy_FrsMaterial.h
  intern/python/BPy_FrsNoise.cpp
  intern/python/BPy_FrsNoise.h
  intern/python/BPy_Id.cpp
  intern/python/BPy_Id.h
  intern/python/BPy_IntegrationType.cpp
  intern/python/BPy_IntegrationType.h
  intern/python/BPy_Interface0D.cpp
  intern/python/BPy_Interface0D.h
  intern/python/BPy_Interface1D.cpp
  intern/python/BPy_Interface1D.h
  intern/python/BPy_Iterator.cpp
  intern/python/BPy_Iterator.h
  intern/python/BPy_MediumType.cpp
  intern/python/BPy_MediumType.h
  intern/python/BPy_Nature.cpp
  intern/python/BPy_Nature.h
  intern/python/BPy_Operators.cpp
  intern/python/BPy_Operators.h
  intern/python/BPy_SShape.cpp
  intern/python/BPy_SShape.h
  intern/python/BPy_StrokeAttribute.cpp
  intern/python/BPy_StrokeAttribute.h
  intern/python/BPy_StrokeShader.cpp
  intern/python/BPy_StrokeShader.h
  intern/python/BPy_UnaryFunction0D.cpp
  intern/python/BPy_UnaryFunction0D.h
  intern/python/BPy_UnaryFunction1D.cpp
  intern/python/BPy_UnaryFunction1D.h
  intern/python/BPy_UnaryPredicate0D.cpp
  intern/python/BPy_UnaryPredicate0D.h
  intern/python/BPy_UnaryPredicate1D.cpp
  intern/python/BPy_UnaryPredicate1D.h
  intern/python/BPy_ViewMap.cpp
  intern/python/BPy_ViewMap.h
  intern/python/BPy_ViewShape.cpp
  intern/python/BPy_ViewShape.h
  intern/python/BinaryPredicate1D/BPy_FalseBP1D.cpp
  intern/python/BinaryPredicate1D/BPy_FalseBP1D.h
  intern/python/BinaryPredicate1D/BPy_Length2DBP1D.cpp
  intern/python/BinaryPredicate1D/BPy_Length2DBP1D.h
  intern/python/BinaryPredicate1D/BPy_SameShapeIdBP1D.cpp
  intern/python/BinaryPredicate1D/BPy_SameShapeIdBP1D.h
  intern/python/BinaryPredicate1D/BPy_TrueBP1D.cpp
  intern/python/BinaryPredicate1D/BPy_TrueBP1D.h
  intern/python/BinaryPredicate1D/BPy_ViewMapGradientNormBP1D.cpp
  intern/python/BinaryPredicate1D/BPy_ViewMapGradientNormBP1D.h
  intern/python/Director.cpp
  intern/python/Director.h
  intern/python/Interface0D/BPy_CurvePoint.cpp
  intern/python/Interface0D/BPy_CurvePoint.h
  intern/python/Interface0D/BPy_SVertex.cpp
  intern/python/Interface0D/BPy_SVertex.h
  intern/python/Interface0D/BPy_ViewVertex.cpp
  intern/python/Interface0D/BPy_ViewVertex.h
  intern/python/Interface0D/CurvePoint/BPy_StrokeVertex.cpp
  intern/python/Interface0D/CurvePoint/BPy_StrokeVertex.h
  intern/python/Interface0D/ViewVertex/BPy_NonTVertex.cpp
  intern/python/Interface0D/ViewVertex/BPy_NonTVertex.h
  intern/python/Interface0D/ViewVertex/BPy_TVertex.cpp
  intern/python/Interface0D/ViewVertex/BPy_TVertex.h
  intern/python/Interface1D/BPy_FEdge.cpp
  intern/python/Interface1D/BPy_FEdge.h
  intern/python/Interface1D/BPy_FrsCurve.cpp
  intern/python/Interface1D/BPy_FrsCurve.h
  intern/python/Interface1D/BPy_Stroke.cpp
  intern/python/Interface1D/BPy_Stroke.h
  intern/python/Interface1D/BPy_ViewEdge.cpp
  intern/python/Interface1D/BPy_ViewEdge.h
  intern/python/Interface1D/Curve/BPy_Chain.cpp
  intern/python/Interface1D/Curve/BPy_Chain.h
  intern/python/Interface1D/FEdge/BPy_FEdgeSharp.cpp
  intern/python/Interface1D/FEdge/BPy_FEdgeSharp.h
  intern/python/Interface1D/FEdge/BPy_FEdgeSmooth.cpp
  intern/python/Interface1D/FEdge/BPy_FEdgeSmooth.h
  intern/python/Iterator/BPy_AdjacencyIterator.cpp
  intern/python/Iterator/BPy_AdjacencyIterator.h
  intern/python/Iterator/BPy_ChainPredicateIterator.cpp
  intern/python/Iterator/BPy_ChainPredicateIterator.h
  intern/python/Iterator/BPy_ChainSilhouetteIterator.cpp
  intern/python/Iterator/BPy_ChainSilhouetteIterator.h
  intern/python/Iterator/BPy_ChainingIterator.cpp
  intern/python/Iterator/BPy_ChainingIterator.h
  intern/python/Iterator/BPy_CurvePointIterator.cpp
  intern/python/Iterator/BPy_CurvePointIterator.h
  intern/python/Iterator/BPy_Interface0DIterator.cpp
  intern/python/Iterator/BPy_Interface0DIterator.h
  intern/python/Iterator/BPy_SVertexIterator.cpp
  intern/python/Iterator/BPy_SVertexIterator.h
  intern/python/Iterator/BPy_StrokeVertexIterator.cpp
  intern/python/Iterator/BPy_StrokeVertexIterator.h
  intern/python/Iterator/BPy_ViewEdgeIterator.cpp
  intern/python/Iterator/BPy_ViewEdgeIterator.h
  intern/python/Iterator/BPy_orientedViewEdgeIterator.cpp
  intern/python/Iterator/BPy_orientedViewEdgeIterator.h
  intern/python/StrokeShader/BPy_BackboneStretcherShader.cpp
  intern/python/StrokeShader/BPy_BackboneStretcherShader.h
  intern/python/StrokeShader/BPy_BezierCurveShader.cpp
  intern/python/StrokeShader/BPy_BezierCurveShader.h
  intern/python/StrokeShader/BPy_BlenderTextureShader.cpp
  intern/python/StrokeShader/BPy_BlenderTextureShader.h
  intern/python/StrokeShader/BPy_CalligraphicShader.cpp
  intern/python/StrokeShader/BPy_CalligraphicShader.h
  intern/python/StrokeShader/BPy_ColorNoiseShader.cpp
  intern/python/StrokeShader/BPy_ColorNoiseShader.h
  intern/python/StrokeShader/BPy_ConstantColorShader.cpp
  intern/python/StrokeShader/BPy_ConstantColorShader.h
  intern/python/StrokeShader/BPy_ConstantThicknessShader.cpp
  intern/python/StrokeShader/BPy_ConstantThicknessShader.h
  intern/python/StrokeShader/BPy_ConstrainedIncreasingThicknessShader.cpp
  intern/python/StrokeShader/BPy_ConstrainedIncreasingThicknessShader.h
  intern/python/StrokeShader/BPy_GuidingLinesShader.cpp
  intern/python/StrokeShader/BPy_GuidingLinesShader.h
  intern/python/StrokeShader/BPy_IncreasingColorShader.cpp
  intern/python/StrokeShader/BPy_IncreasingColorShader.h
  intern/python/StrokeShader/BPy_IncreasingThicknessShader.cpp
  intern/python/StrokeShader/BPy_IncreasingThicknessShader.h
  intern/python/StrokeShader/BPy_PolygonalizationShader.cpp
  intern/python/StrokeShader/BPy_PolygonalizationShader.h
  intern/python/StrokeShader/BPy_SamplingShader.cpp
  intern/python/StrokeShader/BPy_SamplingShader.h
  intern/python/StrokeShader/BPy_SmoothingShader.cpp
  intern/python/StrokeShader/BPy_SmoothingShader.h
  intern/python/StrokeShader/BPy_SpatialNoiseShader.cpp
  intern/python/StrokeShader/BPy_SpatialNoiseShader.h
  intern/python/StrokeShader/BPy_StrokeTextureStepShader.cpp
  intern/python/StrokeShader/BPy_StrokeTextureStepShader.h
  intern/python/StrokeShader/BPy_ThicknessNoiseShader.cpp
  intern/python/StrokeShader/BPy_ThicknessNoiseShader.h
  intern/python/StrokeShader/BPy_TipRemoverShader.cpp
  intern/python/StrokeShader/BPy_TipRemoverShader.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DDouble.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DDouble.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DEdgeNature.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DEdgeNature.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DFloat.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DFloat.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DId.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DId.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DMaterial.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DMaterial.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DUnsigned.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DUnsigned.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DVec2f.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DVec2f.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DVec3f.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DVec3f.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DVectorViewShape.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DVectorViewShape.h
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DViewShape.cpp
  intern/python/UnaryFunction0D/BPy_UnaryFunction0DViewShape.h
  intern/python/UnaryFunction0D/UnaryFunction0D_Id/BPy_ShapeIdF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_Id/BPy_ShapeIdF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_Material/BPy_MaterialF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_Material/BPy_MaterialF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_Nature_EdgeNature/BPy_CurveNatureF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_Nature_EdgeNature/BPy_CurveNatureF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_Vec2f/BPy_Normal2DF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_Vec2f/BPy_Normal2DF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_Vec2f/BPy_VertexOrientation2DF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_Vec2f/BPy_VertexOrientation2DF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_Vec3f/BPy_VertexOrientation3DF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_Vec3f/BPy_VertexOrientation3DF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_ViewShape/BPy_GetOccludeeF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_ViewShape/BPy_GetOccludeeF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_ViewShape/BPy_GetShapeF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_ViewShape/BPy_GetShapeF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_Curvature2DAngleF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_Curvature2DAngleF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_DensityF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_DensityF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetProjectedXF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetProjectedXF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetProjectedYF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetProjectedYF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetProjectedZF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetProjectedZF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetXF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetXF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetYF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetYF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetZF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_GetZF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_LocalAverageDepthF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_LocalAverageDepthF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_ZDiscontinuityF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_double/BPy_ZDiscontinuityF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_GetCurvilinearAbscissaF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_GetCurvilinearAbscissaF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_GetParameterF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_GetParameterF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_GetViewMapGradientNormF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_GetViewMapGradientNormF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_ReadCompleteViewMapPixelF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_ReadCompleteViewMapPixelF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_ReadMapPixelF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_ReadMapPixelF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_ReadSteerableViewMapPixelF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_float/BPy_ReadSteerableViewMapPixelF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_unsigned_int/BPy_QuantitativeInvisibilityF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_unsigned_int/BPy_QuantitativeInvisibilityF0D.h
  intern/python/UnaryFunction0D/UnaryFunction0D_vector_ViewShape/BPy_GetOccludersF0D.cpp
  intern/python/UnaryFunction0D/UnaryFunction0D_vector_ViewShape/BPy_GetOccludersF0D.h
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DDouble.cpp
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DDouble.h
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DEdgeNature.cpp
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DEdgeNature.h
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.cpp
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.h
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DUnsigned.cpp
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DUnsigned.h
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DVec2f.cpp
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DVec2f.h
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DVec3f.cpp
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DVec3f.h
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DVectorViewShape.cpp
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DVectorViewShape.h
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DVoid.cpp
  intern/python/UnaryFunction1D/BPy_UnaryFunction1DVoid.h
  intern/python/UnaryFunction1D/UnaryFunction1D_Nature_EdgeNature/BPy_CurveNatureF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_Nature_EdgeNature/BPy_CurveNatureF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_Vec2f/BPy_Normal2DF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_Vec2f/BPy_Normal2DF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_Vec2f/BPy_Orientation2DF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_Vec2f/BPy_Orientation2DF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_Vec3f/BPy_Orientation3DF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_Vec3f/BPy_Orientation3DF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_Curvature2DAngleF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_Curvature2DAngleF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_DensityF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_DensityF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetCompleteViewMapDensityF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetCompleteViewMapDensityF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetDirectionalViewMapDensityF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetDirectionalViewMapDensityF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetProjectedXF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetProjectedXF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetProjectedYF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetProjectedYF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetProjectedZF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetProjectedZF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetSteerableViewMapDensityF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetSteerableViewMapDensityF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetViewMapGradientNormF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetViewMapGradientNormF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetXF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetXF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetYF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetYF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetZF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_GetZF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_LocalAverageDepthF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_LocalAverageDepthF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_ZDiscontinuityF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_double/BPy_ZDiscontinuityF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_unsigned_int/BPy_QuantitativeInvisibilityF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_unsigned_int/BPy_QuantitativeInvisibilityF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_vector_ViewShape/BPy_GetOccludeeF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_vector_ViewShape/BPy_GetOccludeeF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_vector_ViewShape/BPy_GetOccludersF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_vector_ViewShape/BPy_GetOccludersF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_vector_ViewShape/BPy_GetShapeF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_vector_ViewShape/BPy_GetShapeF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_void/BPy_ChainingTimeStampF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_void/BPy_ChainingTimeStampF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_void/BPy_IncrementChainingTimeStampF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_void/BPy_IncrementChainingTimeStampF1D.h
  intern/python/UnaryFunction1D/UnaryFunction1D_void/BPy_TimeStampF1D.cpp
  intern/python/UnaryFunction1D/UnaryFunction1D_void/BPy_TimeStampF1D.h
  intern/python/UnaryPredicate0D/BPy_FalseUP0D.cpp
  intern/python/UnaryPredicate0D/BPy_FalseUP0D.h
  intern/python/UnaryPredicate0D/BPy_TrueUP0D.cpp
  intern/python/UnaryPredicate0D/BPy_TrueUP0D.h
  intern/python/UnaryPredicate1D/BPy_ContourUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_ContourUP1D.h
  intern/python/UnaryPredicate1D/BPy_DensityLowerThanUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_DensityLowerThanUP1D.h
  intern/python/UnaryPredicate1D/BPy_EqualToChainingTimeStampUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_EqualToChainingTimeStampUP1D.h
  intern/python/UnaryPredicate1D/BPy_EqualToTimeStampUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_EqualToTimeStampUP1D.h
  intern/python/UnaryPredicate1D/BPy_ExternalContourUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_ExternalContourUP1D.h
  intern/python/UnaryPredicate1D/BPy_FalseUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_FalseUP1D.h
  intern/python/UnaryPredicate1D/BPy_QuantitativeInvisibilityUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_QuantitativeInvisibilityUP1D.h
  intern/python/UnaryPredicate1D/BPy_ShapeUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_ShapeUP1D.h
  intern/python/UnaryPredicate1D/BPy_TrueUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_TrueUP1D.h
  intern/python/UnaryPredicate1D/BPy_WithinImageBoundaryUP1D.cpp
  intern/python/UnaryPredicate1D/BPy_WithinImageBoundaryUP1D.h
  intern/scene_graph/DrawingStyle.h
  intern/scene_graph/FrsMaterial.h
  intern/scene_graph/IndexedFaceSet.cpp
  intern/scene_graph/IndexedFaceSet.h
  intern/scene_graph/LineRep.cpp
  intern/scene_graph/LineRep.h
  intern/scene_graph/Node.h
  intern/scene_graph/NodeCamera.cpp
  intern/scene_graph/NodeCamera.h
  intern/scene_graph/NodeDrawingStyle.cpp
  intern/scene_graph/NodeDrawingStyle.h
  intern/scene_graph/NodeGroup.cpp
  intern/scene_graph/NodeGroup.h
  intern/scene_graph/NodeLight.cpp
  intern/scene_graph/NodeLight.h
  intern/scene_graph/NodeShape.cpp
  intern/scene_graph/NodeShape.h
  intern/scene_graph/NodeTransform.cpp
  intern/scene_graph/NodeTransform.h
  intern/scene_graph/NodeViewLayer.cpp
  intern/scene_graph/NodeViewLayer.h
  intern/scene_graph/OrientedLineRep.cpp
  intern/scene_graph/OrientedLineRep.h
  intern/scene_graph/Rep.cpp
  intern/scene_graph/Rep.h
  intern/scene_graph/SceneHash.cpp
  intern/scene_graph/SceneHash.h
  intern/scene_graph/ScenePrettyPrinter.cpp
  intern/scene_graph/ScenePrettyPrinter.h
  intern/scene_graph/SceneVisitor.cpp
  intern/scene_graph/SceneVisitor.h
  intern/scene_graph/TriangleRep.cpp
  intern/scene_graph/TriangleRep.h
  intern/scene_graph/VertexRep.cpp
  intern/scene_graph/VertexRep.h
  intern/stroke/AdvancedFunctions0D.cpp
  intern/stroke/AdvancedFunctions0D.h
  intern/stroke/AdvancedFunctions1D.cpp
  intern/stroke/AdvancedFunctions1D.h
  intern/stroke/AdvancedPredicates1D.h
  intern/stroke/AdvancedStrokeShaders.cpp
  intern/stroke/AdvancedStrokeShaders.h
  intern/stroke/BasicStrokeShaders.cpp
  intern/stroke/BasicStrokeShaders.h
  intern/stroke/Canvas.cpp
  intern/stroke/Canvas.h
  intern/stroke/Chain.cpp
  intern/stroke/Chain.h
  intern/stroke/ChainingIterators.cpp
  intern/stroke/ChainingIterators.h
  intern/stroke/ContextFunctions.cpp
  intern/stroke/ContextFunctions.h
  intern/stroke/Curve.cpp
  intern/stroke/Curve.h
  intern/stroke/CurveAdvancedIterators.h
  intern/stroke/CurveIterators.h
  intern/stroke/Modifiers.h
  intern/stroke/Module.h
  intern/stroke/Operators.cpp
  intern/stroke/Operators.h
  intern/stroke/PSStrokeRenderer.cpp
  intern/stroke/PSStrokeRenderer.h
  intern/stroke/Predicates0D.cpp
  intern/stroke/Predicates0D.h
  intern/stroke/Predicates1D.cpp
  intern/stroke/Predicates1D.h
  intern/stroke/QInformationMap.h
  intern/stroke/Stroke.cpp
  intern/stroke/Stroke.h
  intern/stroke/StrokeAdvancedIterators.h
  intern/stroke/StrokeIO.cpp
  intern/stroke/StrokeIO.h
  intern/stroke/StrokeIterators.h
  intern/stroke/StrokeLayer.cpp
  intern/stroke/StrokeLayer.h
  intern/stroke/StrokeRenderer.cpp
  intern/stroke/StrokeRenderer.h
  intern/stroke/StrokeRep.cpp
  intern/stroke/StrokeRep.h
  intern/stroke/StrokeShader.cpp
  intern/stroke/StrokeShader.h
  intern/stroke/StrokeTesselator.cpp
  intern/stroke/StrokeTesselator.h
  intern/stroke/StyleModule.h
  intern/stroke/TextStrokeRenderer.cpp
  intern/stroke/TextStrokeRenderer.h
  intern/system/BaseIterator.h
  intern/system/BaseObject.cpp
  intern/system/BaseObject.h
  intern/system/Cast.h
  intern/system/Exception.cpp
  intern/system/Exception.h
  intern/system/FreestyleConfig.h
  intern/system/Id.h
  intern/system/Interpreter.h
  intern/system/Iterator.cpp
  intern/system/Iterator.h
  intern/system/PointerSequence.h
  intern/system/Precision.h
  intern/system/ProgressBar.h
  intern/system/PseudoNoise.cpp
  intern/system/PseudoNoise.h
  intern/system/PythonInterpreter.cpp
  intern/system/PythonInterpreter.h
  intern/system/RandGen.cpp
  intern/system/RandGen.h
  intern/system/RenderMonitor.h
  intern/system/StringUtils.cpp
  intern/system/StringUtils.h
  intern/system/TimeStamp.cpp
  intern/system/TimeStamp.h
  intern/system/TimeUtils.h
  intern/view_map/ArbitraryGridDensityProvider.cpp
  intern/view_map/ArbitraryGridDensityProvider.h
  intern/view_map/AutoPtrHelper.h
  intern/view_map/AverageAreaGridDensityProvider.cpp
  intern/view_map/AverageAreaGridDensityProvider.h
  intern/view_map/BoxGrid.cpp
  intern/view_map/BoxGrid.h
  intern/view_map/CulledOccluderSource.cpp
  intern/view_map/CulledOccluderSource.h
  intern/view_map/FEdgeXDetector.cpp
  intern/view_map/FEdgeXDetector.h
  intern/view_map/Functions0D.cpp
  intern/view_map/Functions0D.h
  intern/view_map/Functions1D.cpp
  intern/view_map/Functions1D.h
  intern/view_map/GridDensityProvider.h
  intern/view_map/HeuristicGridDensityProviderFactory.cpp
  intern/view_map/HeuristicGridDensityProviderFactory.h
  intern/view_map/Interface0D.cpp
  intern/view_map/Interface0D.h
  intern/view_map/Interface1D.cpp
  intern/view_map/Interface1D.h
  intern/view_map/OccluderSource.cpp
  intern/view_map/OccluderSource.h
  intern/view_map/Pow23GridDensityProvider.cpp
  intern/view_map/Pow23GridDensityProvider.h
  intern/view_map/Silhouette.cpp
  intern/view_map/Silhouette.h
  intern/view_map/SilhouetteGeomEngine.cpp
  intern/view_map/SilhouetteGeomEngine.h
  intern/view_map/SphericalGrid.cpp
  intern/view_map/SphericalGrid.h
  intern/view_map/SteerableViewMap.cpp
  intern/view_map/SteerableViewMap.h
  intern/view_map/ViewEdgeXBuilder.cpp
  intern/view_map/ViewEdgeXBuilder.h
  intern/view_map/ViewMap.cpp
  intern/view_map/ViewMap.h
  intern/view_map/ViewMapAdvancedIterators.h
  intern/view_map/ViewMapBuilder.cpp
  intern/view_map/ViewMapBuilder.h
  intern/view_map/ViewMapIterators.h
  intern/view_map/ViewMapTesselator.cpp
  intern/view_map/ViewMapTesselator.h
  intern/winged_edge/Curvature.cpp
  intern/winged_edge/Curvature.h
  intern/winged_edge/Nature.h
  intern/winged_edge/WEdge.cpp
  intern/winged_edge/WEdge.h
  intern/winged_edge/WFillGrid.cpp
  intern/winged_edge/WFillGrid.h
  intern/winged_edge/WSFillGrid.cpp
  intern/winged_edge/WSFillGrid.h
  intern/winged_edge/WXEdge.cpp
  intern/winged_edge/WXEdge.h
  intern/winged_edge/WXEdgeBuilder.cpp
  intern/winged_edge/WXEdgeBuilder.h
  intern/winged_edge/WingedEdgeBuilder.cpp
  intern/winged_edge/WingedEdgeBuilder.h
)

set(LIB
  PRIVATE bf::blenlib
  PRIVATE bf::depsgraph
  PRIVATE bf::dna
  PRIVATE bf::intern::guardedalloc
  bf_python_mathutils

  ${PYTHON_LINKFLAGS}
  ${PYTHON_LIBRARIES}
)

set(INC
  .
  ../blenkernel
  ../blentranslation
  ../imbuf
  ../makesrna
  ../python
  ../python/intern
  ../render
  ../render/intern

  # RNA_prototypes.h
  ${CMAKE_BINARY_DIR}/source/blender/makesrna
)

set(INC_SYS
  ${PYTHON_INCLUDE_DIRS}
)

add_definitions(-DWITH_FREESTYLE)

if(WITH_PYTHON_MODULE)
  add_definitions(-DPy_ENABLE_SHARED)
endif()

if(WITH_PYTHON_SAFETY)
  # For bpy_rna.h access.
  add_definitions(-DWITH_PYTHON_SAFETY)
endif()

if(WIN32)
  list(APPEND INC_SYS
    ${PTHREADS_INC}
  )
endif()

blender_add_lib(bf_freestyle "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")

if(COMMAND target_precompile_headers)
  target_precompile_headers(bf_freestyle PRIVATE FRS_precomp.h)
endif()

# RNA_prototypes.h
add_dependencies(bf_freestyle bf_rna)
